Memory Safety for Low-Level Software/Hardware Interactions
نویسندگان
چکیده
Systems that enforce memory safety for today’s operating system kernels and other system software do not account for the behavior of low-level software/hardware interactions such as memory-mapped I/O, MMU configuration, and context switching. Bugs in such low-level interactions can lead to violations of the memory safety guarantees provided by a safe execution environment and can lead to exploitable vulnerabilities in system software. In this work, we present a set of program analysis and run-time instrumentation techniques that ensure that errors in these low-level operations do not violate the assumptions made by a safety checking system. Our design introduces a small set of abstractions and interfaces for manipulating processor state, kernel stacks, memory mapped I/O objects, MMU mappings, and self modifying code to achieve this goal, without moving resource allocation and management decisions out of the kernel. We have added these techniques to a compiler-based virtual machine called Secure Virtual Architecture (SVA), to which the standard Linux kernel has been ported previously. Our design changes to SVA required only an additional 100 lines of code to be changed in this kernel. Our experimental results show that our techniques prevent reported memory safety violations due to low-level Linux operations and that these violations are not prevented by SVA without our techniques. Moreover, the new techniques in this paper introduce very little overhead over and above the existing overheads of SVA. Taken together, these results indicate that it is clearly worthwhile to add these techniques to an existing memory safety system.
منابع مشابه
Assessing the Safety of Integrity Level Partitioning in Software
In order to exploit the capability and performance of modern processors in safety critical applications, it is desirable to be able to run software of differing integrity levels on the same processor. To do this safely, however, requires the ability to enforce partitioning between these different integrity levels. For certification, there is a need to demonstrate the effectiveness of these part...
متن کاملComputing Laboratory ON SOFTWARE VERIFICATION FOR SENSOR NODES
We consider software written for networked, wireless sensor nodes, and specialize software verification techniques for standard C programs in order to locate programming errors in sensor applications before the software’s deployment on motes. Ensuring the reliability of sensor applications is challenging: low-level, interrupt-driven code runs without memory protection in dynamic environments. T...
متن کاملThe Watchdog Approach Efficiently Eliminates an Entire Class of Security Vulnerabilities by Enforcing Memory Safety in Hardware. Watchdog Maintains Per-pointer Bounds and Identifier Metadata in a Disjoint Shadow Space to Ensure Compatibility with Existing
......Low-level systems software— such as operating systems, virtual machines, language runtimes, embedded software, and performance-critical applications—is commonly written in unsafe languages, notably C and C++. These low-level languages remain prevalent because they provide high performance, direct access to the underlying hardware, and explicit control over memory management. Moreover, bec...
متن کاملPoster: Getting The Point(er): On the Feasibility of Attacks on Code-Pointer Integrity
Control-flow hijack attacks remain a major security problem, despite many years of research aimed at mitigating them. Code-Pointer Integrity (CPI) [2] is the first protection mechanism that systematically prevents all such attacks while keeping performance overhead low. In the upcoming S&P’15 paper, Evans et al. [1] claim that CPI can be bypassed on x86-64 and ARM architectures. This poster is ...
متن کاملDSZOOM – Low Latency Software– Based Shared Memory
Software-implementations of shared memory are still far behind the performance of hardwarebased shared memory implementations and are not viable options for most fine-grain sharedmemory applications. The major source for their inefficiency comes from the cost of interruptbased asynchronous protocol processing, not from the actual network latency. As the raw hardware latency of inter-node commun...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2009